﻿/**
* jQuery EasyUI 1.2.5
* 
* Licensed under the GPL terms
* To use it on other terms please contact us
*
* Copyright(c) 2009-2011 stworthy [ stworthy@gmail.com ] 
* 
*/
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "pagination").options;
        var _4 = $(_2).addClass("pagination").empty();
        var t = $("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr></tr></table>").appendTo(_4);
        var tr = $("tr", t);
        if (_3.showPageList) {
            var ps = $("<select class=\"pagination-page-list\"></select>");
            for (var i = 0; i < _3.pageList.length; i++) {
                var _5 = $("<option></option>").text(_3.pageList[i]).appendTo(ps);
                if (_3.pageList[i] == _3.pageSize) {
                    _5.attr("selected", "selected");
                }
            }
            $("<td></td>").append(ps).appendTo(tr);
            _3.pageSize = parseInt(ps.val());
            $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
        }
        $("<td><a href=\"javascript:void(0)\" icon=\"pagination-first\"></a></td>").appendTo(tr);
        $("<td><a href=\"javascript:void(0)\" icon=\"pagination-prev\"></a></td>").appendTo(tr);
        $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
        $("<span style=\"padding-left:6px;\"></span>").html(_3.beforePageText).wrap("<td></td>").parent().appendTo(tr);
        $("<td><input class=\"pagination-num\" type=\"text\" value=\"1\" size=\"2\"></td>").appendTo(tr);
        $("<span style=\"padding-right:6px;\"></span>").wrap("<td></td>").parent().appendTo(tr);
        $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
        $("<td><a href=\"javascript:void(0)\" icon=\"pagination-next\"></a></td>").appendTo(tr);
        $("<td><a href=\"javascript:void(0)\" icon=\"pagination-last\"></a></td>").appendTo(tr);
        if (_3.showRefresh) {
            $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
            $("<td><a href=\"javascript:void(0)\" icon=\"pagination-load\"></a></td>").appendTo(tr);
        }
        if (_3.buttons) {
            $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
            for (var i = 0; i < _3.buttons.length; i++) {
                var _6 = _3.buttons[i];
                if (_6 == "-") {
                    $("<td><div class=\"pagination-btn-separator\"></div></td>").appendTo(tr);
                } else {
                    var td = $("<td></td>").appendTo(tr);
                    $("<a href=\"javascript:void(0)\"></a>").addClass("l-btn").css("float", "left").text(_6.text || "").attr("icon", _6.iconCls || "").bind("click", eval(_6.handler || function () {
                    })).appendTo(td).linkbutton({ plain: true });
                }
            }
        }
        $("<div class=\"pagination-info\"></div>").appendTo(_4);
        $("<div style=\"clear:both;\"></div>").appendTo(_4);
        $("a[icon^=pagination]", _4).linkbutton({ plain: true });
        _4.find("a[icon=pagination-first]").unbind(".pagination").bind("click.pagination", function () {
            if (_3.pageNumber > 1) {
                _b(_2, 1);
            }
        });
        _4.find("a[icon=pagination-prev]").unbind(".pagination").bind("click.pagination", function () {
            if (_3.pageNumber > 1) {
                _b(_2, _3.pageNumber - 1);
            }
        });
        _4.find("a[icon=pagination-next]").unbind(".pagination").bind("click.pagination", function () {
            var _7 = Math.ceil(_3.total / _3.pageSize);
            if (_3.pageNumber < _7) {
                _b(_2, _3.pageNumber + 1);
            }
        });
        _4.find("a[icon=pagination-last]").unbind(".pagination").bind("click.pagination", function () {
            var _8 = Math.ceil(_3.total / _3.pageSize);
            if (_3.pageNumber < _8) {
                _b(_2, _8);
            }
        });
        _4.find("a[icon=pagination-load]").unbind(".pagination").bind("click.pagination", function () {
            if (_3.onBeforeRefresh.call(_2, _3.pageNumber, _3.pageSize) != false) {
                _b(_2, _3.pageNumber);
                _3.onRefresh.call(_2, _3.pageNumber, _3.pageSize);
            }
        });
        _4.find("input.pagination-num").unbind(".pagination").bind("keydown.pagination", function (e) {
            if (e.keyCode == 13) {
                var _9 = parseInt($(this).val()) || 1;
                _b(_2, _9);
            }
        });
        _4.find(".pagination-page-list").unbind(".pagination").bind("change.pagination", function () {
            _3.pageSize = $(this).val();
            _3.onChangePageSize.call(_2, _3.pageSize);
            var _a = Math.ceil(_3.total / _3.pageSize);
            _b(_2, _3.pageNumber);
        });
    };
    function _b(_c, _d) {
        var _e = $.data(_c, "pagination").options;
        var _f = Math.ceil(_e.total / _e.pageSize) || 1;
        var _10 = _d;
        if (_d < 1) {
            _10 = 1;
        }
        if (_d > _f) {
            _10 = _f;
        }
        _e.pageNumber = _10;
        _e.onSelectPage.call(_c, _10, _e.pageSize);
        _11(_c);
    };
    function _11(_12) {
        var _13 = $.data(_12, "pagination").options;
        var _14 = Math.ceil(_13.total / _13.pageSize) || 1;
        var num = $(_12).find("input.pagination-num");
        num.val(_13.pageNumber);
        num.parent().next().find("span").html(_13.afterPageText.replace(/{pages}/, _14));
        var _15 = _13.displayMsg;
        _15 = _15.replace(/{from}/, _13.pageSize * (_13.pageNumber - 1) + 1);
        _15 = _15.replace(/{to}/, Math.min(_13.pageSize * (_13.pageNumber), _13.total));
        _15 = _15.replace(/{total}/, _13.total);
        $(_12).find(".pagination-info").html(_15);
        $("a[icon=pagination-first],a[icon=pagination-prev]", _12).linkbutton({ disabled: (_13.pageNumber == 1) });
        $("a[icon=pagination-next],a[icon=pagination-last]", _12).linkbutton({ disabled: (_13.pageNumber == _14) });
        if (_13.loading) {
            $(_12).find("a[icon=pagination-load]").find(".pagination-load").addClass("pagination-loading");
        } else {
            $(_12).find("a[icon=pagination-load]").find(".pagination-load").removeClass("pagination-loading");
        }
    };
    function _16(_17, _18) {
        var _19 = $.data(_17, "pagination").options;
        _19.loading = _18;
        if (_19.loading) {
            $(_17).find("a[icon=pagination-load]").find(".pagination-load").addClass("pagination-loading");
        } else {
            $(_17).find("a[icon=pagination-load]").find(".pagination-load").removeClass("pagination-loading");
        }
    };
    $.fn.pagination = function (_1a, _1b) {
        if (typeof _1a == "string") {
            return $.fn.pagination.methods[_1a](this, _1b);
        }
        _1a = _1a || {};
        return this.each(function () {
            var _1c;
            var _1d = $.data(this, "pagination");
            if (_1d) {
                _1c = $.extend(_1d.options, _1a);
            } else {
                _1c = $.extend({}, $.fn.pagination.defaults, _1a);
                $.data(this, "pagination", { options: _1c });
            }
            _1(this);
            _11(this);
        });
    };
    $.fn.pagination.methods = { options: function (jq) {
        return $.data(jq[0], "pagination").options;
    }, loading: function (jq) {
        return jq.each(function () {
            _16(this, true);
        });
    }, loaded: function (jq) {
        return jq.each(function () {
            _16(this, false);
        });
    } 
    };
    $.fn.pagination.defaults = { total: 1, pageSize: 10, pageNumber: 1, pageList: [10, 20, 30, 50], loading: false, buttons: null, showPageList: true, showRefresh: true, onSelectPage: function (_1e, _1f) {
    }, onBeforeRefresh: function (_20, _21) {
    }, onRefresh: function (_22, _23) {
    }, onChangePageSize: function (_24) {
    }, beforePageText: "Page", afterPageText: "of {pages}", displayMsg: "Displaying {from} to {to} of {total} items"
    };
})(jQuery);

